Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Troyes Challenger Pozoblanco Challenger Porto Challenger Zhangjiagang Challenger Todi Challenger Prague 3 Challenger Shanghai Challenger Guangzhou Challenger Zhuhai Open - Zhuhai Shanghai Rolex Masters - Shanghai Shenzhen 1 Challenger Shenzhen 2 Challenger Sofia Open - Sofia Valencia Challenger M25 Badalona Oeiras 1 Challenger Oeiras 2 Challenger Barcelona Challenger Tenerife 1 Challenger M25 Bourg-en-Bresse Cherbourg Challenger Tenerife 2 Challenger Quimper Challenger Nottingham Challenger M25 Vic M25 Quinta Do Lago M25 Tarragona M25 Vale do Lobo M25 Denia Lyon Challenger M25 Montauban M25 Mataro Zagreb Challenger M25 Sabadell Francavilla Challenger M25 Gandia Todi Challenger Troyes Challenger Cordenons Challenger Dobrich 2 Challenger Porto 2 Challenger M25 Sabadell Tulln Challenger Sibiu Challenger M25 Santa Margherita di Pula M25 Santa Margherita di Pula M15 San Gregorio di Catania Madrid Challenger Pau Challenger M25 Faro Hersonissos 1 Challenger M15 Manacor M15 Madrid Hersonissos 2 Challenger M25 Monastir M25 Gijon M25 Vale do Lobo Algeria F2 Oeiras 1 Challenger Oeiras 2 Challenger Poznan Challenger Rome Challenger Milan Challenger M25 Badalona M25 Sabadell Zug Challenger M25 Vic M25 Oviedo Barletta Challenger M25 Villeneuve-Loubet Chisinau Challenger M25 Cordoba M25 Mataro Monastir Challenger Troyes Challenger Bunschoten Challenger Hagen Challenger Cordenons Challenger M25 Santander M25 Sabadell Seville Challenger M25 Zaragoza Targu Mures 2 Challenger Helsinki Challenger M25 Santa Margherita di Pula France F2 France F3 Nigeria F1 Nigeria F2 Saudi Arabia F1 Saudi Arabia F2 Tunisia F1 Tunisia F2 Tunisia F3 Morocco F3 Iran F1 Iran F2 Italy F22 Italy F23 France F13 France F19 France F20 Belgium F2 Tunisia F4 Tunisia F5 Tunisia F6 UAE F1 Qatar F1 Qatar F2 Qatar F3 Portugal F2 Portugal F3 France F5 Morocco F1 Morocco F2 Italy F12 Italy F13 Tunisia F1 Tunisia F2 Tunisia F3 France F9 Iran F1 Iran F2 France F12 France F17 Tunisia F4 Tunisia F5 China F1 China F2 France F2 France F3 Poland F1 Poland F2 Egypt F2 Egypt F3 France F6 France F7 Spain F19 France F17 France F18 France F19 Tunisia F4 Tunisia F5 Tunisia F6 Tunisia F7 France F1 France F3 Great Britain F3 Great Britain F4 Egypt F1 Egypt F2 Egypt F3 Italy F14 Tunisia F1 Tunisia F2 Morocco F4 Italy F26 Turkey F2 Kuwait F2 Tunisia F1 Austria F4 Austria F5 Austria F6 Italy F25 Romania F15 Italy F28 France F15 Spain F35 France F17 Spain F37 France F18 Spain F38 Spain F39 United Arab Emirates F1 United Arab Emirates F2 Morocco F1 Guatemala F1 Morocco F2 Costa Rica F1 Panama F1 Italy F3 Italy F4 Spain F11 Spain F15 Spain F16 Kuwait F1 Kuwait F2 Tunisia F1 Tunisia F2 Tunisia F3 Italy F17 Georgia F1 Georgia F2 Italy F22 Italy F25 Italy F26 Italy F27 France F19 Turkey F13 Morocco F1 Morocco F2 Spain F7 Italy F2 Italy F3 France F6 Italy F7 Italy F8 Tunisia F1 Italy F12 Tunisia F2 Italy F13 Italy F14 Italy F17 Italy F19 Italy F20 Spain F29 Italy F22 Italy F23 Netherlands F5 Netherlands F6 Italy F25 Italy F26 Morocco F7 Spain F35 Italy F28 Spain F36 Italy F29 Turkey F12 Egypt F4 Turkey F13 Egypt F5 Spain F39 Turkey F14 Turkey F15 Spain F40 Sudan F1 Sudan F2 Spain F4 Colombia F1 Spain F5 Colombia F2 Spain F6 Spain F7 Spain F8 Spain F9 Spain F10 Italy F5 Italy F7 Great Britain F7 Italy F11 Italy F13 Netherlands F1 Great Britain F8 Kazakhstan F4 Germany F9 Germany F10 Italy F23 Italy F24 Austria F8 Italy F26 Italy F30 Croatia F12 Croatia F13 Croatia F14 Turkey F32 Turkey F33 Turkey F34 Turkey F35 Egypt F1 Egypt F2 Algeria F1 Turkey F12 Spain F8 Spain F9 Spain F10 Spain F11 Spain F12 Spain F14 Turkey F23 Turkey F25 Turkey F42 Turkey F7 Turkey F8 Turkey F11 Spain F10 Italy F6 Spain F13 Spain F15 Spain F4 Spain F5 Italy F28 Turkey F43 Spain F1 Spain F2 Spain F3 Spain F4 Tunisia F9 Tunisia F10 Tunisia F11 Italy F10 Italy F27 Spain F5 Spain F6 Turkey F13 Turkey F14 Turkey F24 Turkey F41 Turkey F46 Turkey F47 Turkey F48 Turkey F49 Turkey F9 Turkey F10 Turkey F12 Turkey F44 Italy F20 Italy F23 France F23 Great Britain F10 Seville Challenger Marbella Challenger Switzerland F2 France F4 Romania F4 Italy F13 Italy F16 Czech Republic F4 France F13 Serbia F7 Portugal F12 Kazakhstan F1 (Aktobe) Kazakhstan F2 (Aktobe) Tunisia F9 (Hammamet) Italy F5 (Santa Margherita Di Pula) Italy F6 (Santa Margherita Di Pula) Italy F7 (Santa Margherita Di Pula) Italy F28 (Trieste) Italy F33 (Santa Margherita Di Pula) Italy F34 (Santa Margherita Di Pula) Italy F35 (Santa Margherita Di Pula) Greece F8 (Heraklion) Spain F2 (Manacor (Mallorca)) Spain F3 (Paguera (Mallorca)) Italy F2 (Santa Margherita Di Pula) Italy F3 (Santa Margherita Di Pula) Italy F5 (Santa Margherita Di Pula) Italy F7 (Santa Margherita Di Pula) Spain F9 (Madrid) Challenger Ford de Cherbourg - Cherbourg Tunis Open - Tunis Togliatti Cup - Togliatti Mordovia Cup 2005 - Saransk Ethias Tennis Trophy - Mons The LTA Men's Challenger - Southampton Nossa Caixa Tennis Cup - Sao Paulo Tunis Open 2006 - Tunis Tunis Open 2007 - Tunis Tunis Open - Tunis Timisoara Challenger - Timisoara Open D'Orleans - Orleans Tanger Challenger Meknes Challenger Rabat Challenger Marrakech Challenger Napoli Challenger Tunis Challenger Saransk Challenger San Sebastian Challenger Como Challenger Todi Challenger Tulsa Challenger Quito Challenger Sacramento Challenger Genova Challenger Tanger Challenger Meknes Challenger Marrakech Challenger Napoli Challenger Monza Challenger Rome Challenger Tunis Challenger Alessandria Challenger San Benedetto Challenger Bucaramanga Challenger Rabat Challenger Marrakech Challenger Santos Challenger Cremona Challenger Orbetello Challenger Penza Challenger Astana Challenger Recanati Challenger Samarkand Challenger Istanbul Challenger Todi Challenger Izmir Challenger Ljubljana Challenger Napoli Challenger Mons Challenger Rennes Challenger Eckental Challenger Geneva Challenger Bratislava Challenger Kazan Challenger Quimper Challenger Bergamo Challenger Casablanca Challenger Kyoto Challenger Pingguo Challenger Barletta Challenger Tunis Challenger San Benedetto Challenger Recanati Challenger San Marino Challenger Cordenons Challenger Segovia Challenger Como Challenger Istanbul Challenger Izmir Challenger Orleans Challenger Tashkent Challenger Seoul Challenger Geneva Challenger Rimouski Challenger San Luis Potosi Challenger Rome Challenger Santos Challenger Sao Paulo Challenger Tunis Challenger Arad Challenger Furth Challenger Kosice Challenger Tanger Challenger Timisoara Challenger Scheveningen Challenger Binghamton Challenger Lexington Challenger Tampere Challenger Aptos Challenger San Marino Challenger Meerbusch Challenger Como Challenger Shanghai Challenger Brasov Challenger Istanbul Challenger Seville Challenger Izmir Challenger Orleans Challenger Fergana Challenger Mons Challenger Tashkent Challenger Mouilleron-Le-Captif Challenger Geneva Challenger Casablanca Challenger Maui Challenger Chitre Challenger Dallas Challenger Bergamo Challenger Morelos Challenger Panama City Challenger Guadalajara Challenger Barranquilla Challenger Tunis Challenger Ostrava Challenger Rome Challenger Bordeaux Challenger Vicenza Challenger Mestre Challenger Caltanissetta Challenger Prague Challenger Marburg Challenger Winnetka Challenger Todi Challenger Granby Challenger Meerbusch Challenger Como Challenger Alphen Challenger Istanbul Challenger Izmir Challenger Meknes Challenger Kenitra Challenger Knoxville Challenger Champaign Challenger Casablanca Challenger Turin Challenger Aix En Provence Challenger Rome Challenger Vicenza Challenger Furth Challenger Manchester Challenger Ilkley Challenger Perugia Challenger Milan Challenger Marburg Challenger Todi Challenger San Benedetto Challenger Aptos Challenger Prague Challenger Manerbio Challenger Como Challenger Genova Challenger Izmir Challenger Trnava Challenger Rome Challenger Mons Challenger Mohammedia Challenger Rennes Challenger Charlottesville Challenger Ortisei Challenger Knoxville Challenger Champaign Challenger Bangkok Challenger Manila Challenger Bergamo Challenger Cherbourg Challenger Puebla Challenger Guadalajara Challenger San Luis Potosi Challenger Leon Challenger St. Brieuc Challenger Le Gosier Challenger Barletta Challenger Ostrava Challenger Furth Challenger Caltanissetta Challenger Tampere Challenger Prague Challenger Lexington Challenger Cortina Challenger Fano Challenger Cordenons Challenger Seville Challenger Istanbul Challenger Sibiu Challenger Rome Challenger Ho Chi Minh City Challenger Casablanca Challenger Mouilleron-Le-Captif Challenger Brescia Challenger Budapest Challenger Cherbourg Challenger Bergamo Challenger Barletta Challenger Francavilla Challenger Ostrava Challenger Aix En Provence Challenger Rome Challenger Bordeaux Challenger Heilbronn Challenger Vicenza Challenger Prostejov Challenger Surbiton Challenger Lyon Challenger Marburg Challenger Perugia Challenger San Benedetto Challenger Gatineau Challenger Biella Challenger Aptos Challenger Portoroz Challenger Cordenons Challenger Istanbul Challenger Banja Luka Challenger Izmir Challenger Sibiu Challenger Rome Challenger Brest Challenger Mouilleron-Le-Captif Challenger Canberra Challenger Cherbourg Challenger Zhuhai Challenger Shenzhen Challenger Lille Challenger Qujing Challenger Alicante Challenger Tunis Challenger Ostrava Challenger Braga Challenger Lisbon Challenger Mestre Challenger Shymkent Challenger Blois Challenger Milan Challenger Recanati Challenger San Benedetto Challenger Prague Challenger Cordenons Challenger Como Challenger Seville Challenger Szczecin Challenger Kaohsiung Challenger Biella Challenger Florence Challenger Barcelona Challenger Guayaquil Challenger Montevideo Challenger Noumea Challenger Burnie Challenger Launceston Challenger Bergamo Challenger Pau Challenger Shenzhen Challenger Zhangjiagang Challenger Alicante Challenger Barletta Challenger Tunis Challenger Aix En Provence Challenger Lisbon Challenger Vicenza Challenger Almaty Challenger Shymkent Challenger Blois Challenger Recanati Challenger Nur-Sultan Challenger Prague Challenger Sopot Challenger Manerbio Challenger Vancouver Challenger Como Challenger Genova Challenger Cassis Challenger Szczecin Challenger Biella Challenger Glasgow Challenger Orleans Challenger Florence Challenger Nur-Sultan Challenger Barcelona Challenger Ningboo Challenger Lima Challenger Liuzhou Challenger Shenzhen Challenger Canberra Challenger Bangkok Challenger Bangkok Challenger Burnie Challenger Launceston Challenger Bengalaru Challenger Bergamo Challenger Pau Challenger Monterrey Challenger Prague Challenger Todi Challenger Prague II Challenger Trieste Challenger Ostrava Challenger Cordenons Challenger Prostejov Challenger Iasi Challenger Sibiu Challenger Split Challenger Barcelona Challenger Alicante Challenger Istanbul Challenger Parma Challenger Bratislava Challenger Maia Challenger Istanbul Challenger Antalya Challenger Antalya 2 Challenger Biella 1 Challenger Biella 2 Challenger Gran Canaria 1 Challenger Gran Canaria 2 Challenger Biella 3 Challenger Marbella Challenger Belgrade Challenger Split 2 Challenger Rome 1 Challenger Rome 2 Challenger Ostrava Challenger Biella 5 Challenger Biella 7 Challenger Bratislava Challenger Almaty 1 Challenger Almaty 2 Challenger Forli Challenger Milan Challenger Porto Challenger Braunschweig Challenger Perugia Challenger Nur-Sultan 3 Challenger Todi Challenger Nur-Sultan 4 Challenger Segovia Challenger Trieste Challenger Cordenons Challenger Liberec Challenger San Marino Challenger Prague 2 Challenger Verona Challenger Barletta Challenger Seville Challenger Banja Luka Challenger Istanbul 2 Challenger Bucharest Challenger Lisbon Challenger Napoli Challenger Napoli 2 Challenger Bogota Challenger Las Vegas Challenger Tenerife Challenger Charlottesville Challenger Roanne Challenger Knoxville Challenger Champaign Challenger Bendigo Challenger Forli 2 Challenger Bengalaru 1 Challenger Forli 4 Challenger Forli 5 Challenger Gran Canaria Challenger Roseto Degli Abruzzi 1 Challenger Roseto Degli Abruzzi 2 Challenger Lille Challenger Zadar Challenger Oeiras 1 Challenger St. Brieuc Challenger Murcia Challenger Barletta Challenger Prague 1 Challenger Aguascalientes Challenger Ostrava Challenger Morelos Challenger Prague 2 Challenger Tunis Challenger Vicenza Challenger Troisdorf Challenger Poznan Challenger Little Rock Challenger Orlando Challenger Blois Challenger Corrientes Challenger Buenos Aires 3 Challenger Cali Challenger Troyes Challenger Braunschweig Challenger Bogota Challenger Verona Challenger Rome Challenger Tampere Challenger Zug Challenger Liberec Challenger San Marino Challenger Banja Luka Challenger Toulouse Challenger Seville Challenger Cassis Challenger Istanbul Challenger Braga Challenger Charleston Challenger Alicante Challenger Tiburon Challenger Fairfield Challenger Ambato Challenger Ortisei Challenger Calgary Challenger Drummondville Challenger Maspalomas Challenger Oeiras 1 Challenger Oeiras 2 Challenger Tenerife 1 Challenger Tenerife 2 Challenger Manama Challenger Bengaluru Challenger Pune Challenger Las Franquesas del Valles Challenger Girona Challenger Murcia Challenger Madrid Challenger Ostrava Challenger Aix En Provence Challenger Francavilla Challenger Tunis Challenger Vicenza Challenger Prostejov Challenger Perugia Challenger Poznan Challenger Modena Challenger Maspalomas Challenger Salzburg Challenger Qatar Open - Doha Grand Prix de Tennis de Lyon - Lyon Open 13 - Marseille Qatar Exxon Mobil Open - Doha Open Sabadell Atlantico - Barcelona Grand Prix Hassan II - Casablanca Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Casablanca Open Sabadell Atlantico - Barcelona Open de Nice Cote d'Azur - Nice AEGON Championships - London UNICEF Open - 's Hertogenbosch Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Dubai Duty Free Tennis Championships - Dubai Bet-at-home Cup - Kitzbuhel Citi Open - Washington Valencia Open - Valencia Qatar ExxonMobil Open - Doha Aircel Chennai Open - Chennai Open Sud de France - Montpellier Open 13 - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona Hall of Fame Tennis Championships - Newport Citi Open - Washington Malaysian Open - Kuala Lumpur China Open - Beijing Kremlin Cup - Moscow Valencia Open - Valencia Qatar ExxonMobil Open - Doha Open Sud de France - Montpellier U.S. National Indoor Tennis Championships - Memphis Delray Beach Open - Delray Beach Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Casablanca BRD Nastase Tiriac Trophy - Bucharest TEB BNP Paribas Istanbul Open - Istanbul Geneva Open - Geneva Aegon Nottingham Open - Nottingham Hall of Fame Tennis Championships - Newport Claro Open Colombia - Bogota BB&T Atlanta Open - Atlanta Citi Open - Washington Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Qatar ExxonMobil Open - Doha Garanti Koza Sofia Open - Sofia Memphis Open - Memphis Delray Beach Open - Delray Beach Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona BRD Nastase Tiriac Trophy - Bucharest BMW Open - Munich Geneva Open - Geneva Mercedes Cup - Stuttgart Gerry Weber Open - Halle Aegon Nottingham Open - Nottingham Citi Open - Washington Winston-Salem Open - Winston-Salem Moselle Open - Metz Shenzhen Open - Shenzhen China Open - Beijing If Stockholm Open - Stockholm Erste Bank Open - Vienna Qatar ExxonMobil Open - Doha ASB Classic - Auckland Open Sud de France - Montpellier Open 13 - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril Mercedes Cup - Stuttgart BB&T Atlanta Open - Atlanta Suisse Open - Gstaad Citi Open - Washington Winston-Salem Open - Winston-Salem Shenzhen Open - Shenzhen China Open - Beijing If Stockholm Open - Stockholm Qatar ExxonMobil Open - Doha Garanti Koza Sofia Open - Sofia Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona TEB BNP Paribas Istanbul Open - Istanbul Ricoh Open - 's-Hertogenbosch Gerry Weber Open - Halle BB&T Atlanta Open - Atlanta Citi Open - Washington Winston-Salem Open - Winston-Salem Chengdu Open - Chengdu China Open - Beijing Kremlin Cup - Moscow Swiss Indoors Basel - Basel Tata Open Maharashtra - Pune Sydney International - Sydney Cordoba Open - Cordoba Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Grand Prix Hassan II - Marrakech Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril Swiss Open - Gstaad Citi Open - Washington Qatar ExxonMobil Open - Doha Tata Open Maharashtra - Pune Dubai Duty Free Tennis Championships - Dubai Antalya Open - Antalya Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Gonet Geneva Open - Geneva Singapore Tennis Open - Singapore Anytech365 Andalucia Open - Marbella Sardegna Open - Cagliari Belgrade 2 - Belgrade Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai Grand Prix Hassan II - Marrakech Generali Open - Kitzbuhel Tel Aviv Watergen Open - Tel Aviv Gijon Open - Gijon Tennis Napoli Open - Naples Dubai Duty Free Tennis Championships - Dubai Barcelona Open Banc Sabadell - Barcelona Sony Open Tennis - Miami Rogers Cup - Toronto Western & Southern Open - Cincinnati Shanghai Rolex Masters - Shanghai BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Miami Open - Miami Internazionali BNL d'Italia - Rome Western & Southern Open - Cincinnati BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Western & Southern Open - Cincinnati Shanghai Rolex Masters - Shanghai Internazionali BNL d'Italia - Rome Rogers Cup - Toronto Western & Southern Open - Cincinnati BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Coupe Rogers - Montreal Miami Open - Miami Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London French Open - Paris Davis Cup, Group 2, PO, LAT-TUN 3-2 Davis Cup, Group 2, 2R, POR-TUN 4-1 Davis Cup, Group 2, PO, SLO-TUN 4-1 Davis Cup, Group II, 1R, GBR-TUN 4-1 Davis Cup, Group II, PO, IRL-TUN 3-2 Davis Cup, Group II, PO, TUN-BLR 2-3 Davis Cup, Group II, 1R, BIH-TUN 3-1 Davis Cup, Group II, PO, TUN-BUL 3-2 Davis Cup, Group II, 1R, TUN-SWE 2-3 Davis Cup, Group II, PO, CYP-TUN 1-4 Davis Cup, Group II, 1R, TUN-FIN 2-3 Davis Cup, Group II, PO, EST-TUN 3-2 Davis Cup, World Group II, PO, GUA-TUN 1-3 Davis Cup, Group I, PO, TUN-BIH 1-3 All Lower level tournaments Olympics - London Olympics - Rio de Janeiro